Pre- and Post Selection of Compiler Optimizations by Program Execution
نویسنده
چکیده
In this paper, we investigate the combined use of static techniques and dynamic feedback information to achieve a high level of optimization of both compiler eeciency and code performance. In previous work, we have introduced a new compiler approach, iterative compilation, to select the best tile sizes and unrolling factors. In this approach, many versions of programs are generated and their worth is determined by the actual execution time. We found that this approach can obtain a much higher level of optimization than conventional static techniques. To further achieve both compiler eeciency and high code performance, we have incorporated cache models in the iterative compilation system. We utilize feedback information in two ways: Post-Selection and Pre-Selection. Experimental results show that even a very simple cache model can achieve a high level of optimization with Post-Selection verifying the worth of transformed programs, especially when the number of program executions is limited. Pre-Selection is superior if more program executions are allowed.
منابع مشابه
Automatic Selection of Machine Learning Models for WCET-aware Compiler Heuristic Generation
Machine learning has shown its capabilities for an automatic generation of heuristics used by optimizing compilers. The advantages of these heuristics are that they can be easily adopted to a new environment and in some cases outperform hand-crafted compiler optimizations. However, this approach shifts the effort from manual heuristic tuning to the model selection problem of machine learning – ...
متن کاملAutomatic Selection of Machine Learning Models for Compiler Heuristic Generation
Machine learning has shown its capabilities for an automatic generation of heuristics used by optimizing compilers. The advantages of these heuristics are that they can be easily adopted to a new environment and in some cases outperform hand-crafted compiler optimizations. However, this approach shifts the effort from manual heuristic tuning to the model selection problem of machine learning – ...
متن کاملMaking Lambda Calculus Smaller, Faster
Some optimizations are speculative: they improve execution speed most but not all of the time, or they trade o faster execution for an increase in code size. Other optimizations, such as dead-variable elimination and algebraic simpli cation, are guaranteed to both reduce code size and speed execution. It makes sense to group all of these \contracting" optimizations together in a single phase of...
متن کاملSpeculative pre-execution assisted by compiler (SPEAR)
Speculative pre-execution achieves efficient data prefetching by running additional prefetching threads on spare hardware contexts. Various implementations for speculative pre-execution have been proposed, including compiler-based static approaches and hardware-based dynamic approaches. A static approach defines the p-thread at compile time and executes it as a stand-alone running thread. There...
متن کاملStudying Compiler Optimizations on Superscalar Processors Through Interval Analysis
Understanding the performance impact of compiler optimizations on superscalar processors is complicated because compiler optimizations interact with the microarchitecture in complex ways. This paper analyzes this interaction using interval analysis, an analytical processor model that allows for breaking total execution time into cycle components. By studying the impact of compiler optimizations...
متن کامل